In a system with multiple network packet dispatchers, multiple transmit ports and multiple endpoints or nodes, it may be desirable to purge the system of all packets going to a specific port or node, for instance, in the event of an error or fencing condition. In this kind of system there would need to be FIFOs (first-in-first-out) per dispatcher per port to handle the traffic from the different dispatchers. One solution is to completely halt the input of packets into the system and then let the entire system drain. Such implementation, however, could take time and also cause delays and unnecessary interruptions to streams of traffic that are not being purged.
U.S. Patent Application Publication No. 20020136211 uses a shared memory structure to manage flow control of packets and the purging of such packets. However, the method described in that publication does not determine packets that possess a particular attribute for purging from a pipeline and FIFO.
U.S. Patent Application Publication No. 20040109412 discusses a system for switching packet data flow including the buffering of packets from paths in a queue and purging state information from a FIFO structure. The system described in that publication, however, purges only one item. It does not search the entire structure to purge multiple items.
U.S. Pat. No. 4,607,363 describes a mechanism for preventing a buffer from filling up. The oldest packets are purged from the system when a threshold is reached. That mechanism, however, does not compare multiple attributes or multiple values for multiple attributes, rather only time data in the buffer. It also does not purge all packets of a certain attribute, but keeps the buffer contents down.
U.S. Pat. No. 4,817,084 discusses purging packets on a per port basis for resolving packet switch conflicts. However, there is no mechanism for clearing a buffer or pipeline of said packets. Rather, packets are dropped at the source such as the microprocessor. U.S. Pat. No. 5,086,428 describes a purging packet, which directs a node or endpoint to remove all information about a given node in a database stored on a particular node. U.S. Pat. No. 5,777,987 describes purging due to acknowledgment and U.S. Pat. No. 6,963,572 describes a mechanism for purging one particular corrupted packet on a remote node. Those patents, however, do not provide purging outstanding packets from a buffer and pipeline, which have a particular attribute.
Accordingly, an improved method for purging outstanding packets from one or more pipelines or FIFOs is desirable. Preferably, the purging mechanism allows purging of packets having one or more specified attributes or values of attributes. Further, it is desirable to have a purging mechanism that can purge packets with a specific attribute without interrupting the flow of other packets.